package com.websocket.config.originWebsocket;

import com.websocket.config.originWebsocket.handler.MyWebSocketHandler;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
import org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor;

/**
 * @作者: 林江
 * @创建时间: 2023/12/18
 * @功能:
 */
@Configuration
@EnableWebSocket
public class MyWebsocketConfig implements WebSocketConfigurer {


    /**
     * 和SpringMvc整合的接口WebSocketHttpRequestHandler
     *
     * @param registry
     */
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        // 配置Websocket的连接端点
        registry.addHandler(myWebSocketHandler(), "/ws")
                // 基于什么实现WebSocket的握手，可以自定义
                .addInterceptors(new HttpSessionHandshakeInterceptor());
    }

//    /**
//     * 开启SocketJS，和SpringMvc整合的接口SockJsHttpRequestHandler
//     *
//     * @param registry
//     */
//    @Override
//    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
//        // 配置Websocket的连接端点
//        registry.addHandler(myWebSocketHandler(), "/ws")
//                // 基于什么实现WebSocket的握手，可以自定义
//                .addInterceptors(new HttpSessionHandshakeInterceptor())
//                .withSockJS() // 使用socketJS端点
//        ;
//    }


    @Bean
    public MyWebSocketHandler myWebSocketHandler() {
        return new MyWebSocketHandler();
    }

}
